@echo off
chcp 65001 >nul
setlocal

REM ========================================
REM 军事数据加工平台 - 打包脚本
REM ========================================

cls
echo ========================================
echo 军事数据加工平台 - EXE 打包工具
echo ========================================
echo.

REM 检查 Node.js
where node >nul 2>&1
if %errorlevel% neq 0 (
    echo 错误: 未找到 Node.js
    echo 请先安装 Node.js: https://nodejs.org/
    pause
    exit /b 1
)

echo [1/5] 检查环境...
echo Node.js 版本: 
node -v
echo.
echo pnpm 版本: 
pnpm -v
echo.

REM 检查 pkg 是否安装
echo [2/5] 检查 pkg 工具...
if not exist "node_modules\.bin\pkg.cmd" (
    echo pkg 未安装，正在安装...
    call pnpm install -D pkg
    if %errorlevel% neq 0 (
        echo 安装失败！
        pause
        exit /b 1
    )
)
echo pkg 工具已就绪
echo.

REM 选择打包平台
echo [3/5] 选择打包平台...
echo.
echo 1. Windows 64位 (推荐)
echo 2. Linux 64位
echo 3. macOS 64位
echo 4. 所有平台
echo.
set /p platform=请选择 (1-4): 

echo.
echo [4/5] 开始打包...
echo.

if "%platform%"=="1" (
    echo 正在打包 Windows 64位版本...
    call pnpm run build:win
) else if "%platform%"=="2" (
    echo 正在打包 Linux 64位版本...
    call pnpm run build:linux
) else if "%platform%"=="3" (
    echo 正在打包 macOS 64位版本...
    call pnpm run build:mac
) else if "%platform%"=="4" (
    echo 正在打包所有平台版本...
    call pnpm run build:all
) else (
    echo 无效的选择！
    pause
    exit /b 1
)

if %errorlevel% neq 0 (
    echo.
    echo 打包失败！请检查错误信息
    pause
    exit /b 1
)

echo.
echo [5/5] 创建部署包...
echo.

REM 创建部署目录
set "DEPLOY_DIR=build\deployment"
if not exist "%DEPLOY_DIR%" mkdir "%DEPLOY_DIR%"

REM 复制 exe 文件
if exist "build\janes-backend.exe" (
    copy "build\janes-backend.exe" "%DEPLOY_DIR%\"
)
if exist "build\janes-backend" (
    copy "build\janes-backend" "%DEPLOY_DIR%\"
)

REM 复制配置文件
copy "env.example" "%DEPLOY_DIR%\.env"
copy "管理脚本.bat" "%DEPLOY_DIR%\"

REM 创建目录结构
mkdir "%DEPLOY_DIR%\uploads\avatars" 2>nul
mkdir "%DEPLOY_DIR%\uploads\temp" 2>nul
mkdir "%DEPLOY_DIR%\uploads\thumbnails" 2>nul
mkdir "%DEPLOY_DIR%\templates" 2>nul
mkdir "%DEPLOY_DIR%\logs" 2>nul

REM 复制模板文件
if exist "templates\" (
    xcopy /E /I /Y "templates" "%DEPLOY_DIR%\templates"
)

REM 复制 SQL 文件
if exist "src\config\database.sql" (
    copy "src\config\database.sql" "%DEPLOY_DIR%\"
)

REM 创建部署说明
echo 军事数据加工平台 - 部署包 > "%DEPLOY_DIR%\README.txt"
echo. >> "%DEPLOY_DIR%\README.txt"
echo 1. 编辑 .env 文件，配置数据库和 API 信息 >> "%DEPLOY_DIR%\README.txt"
echo 2. 确保 MySQL 数据库已安装并创建数据库 >> "%DEPLOY_DIR%\README.txt"
echo 3. 导入 database.sql 文件到数据库 >> "%DEPLOY_DIR%\README.txt"
echo 4. 运行 janes-backend.exe 或使用管理脚本.bat 安装为服务 >> "%DEPLOY_DIR%\README.txt"
echo 5. 访问 http://localhost:3000/health 检查服务状态 >> "%DEPLOY_DIR%\README.txt"
echo. >> "%DEPLOY_DIR%\README.txt"
echo 详细文档请参考: 打包exe使用说明.md >> "%DEPLOY_DIR%\README.txt"

echo ========================================
echo 打包完成！
echo ========================================
echo.
echo 输出目录: %DEPLOY_DIR%
echo.
echo 文件列表:
dir /B "%DEPLOY_DIR%"
echo.

REM 显示文件大小
if exist "%DEPLOY_DIR%\janes-backend.exe" (
    for %%A in ("%DEPLOY_DIR%\janes-backend.exe") do (
        set size=%%~zA
        set /a size_mb=!size! / 1048576
        echo EXE 文件大小: !size_mb! MB
    )
)

echo.
echo 下一步:
echo 1. 将 %DEPLOY_DIR% 目录复制到目标服务器
echo 2. 按照 README.txt 说明进行部署
echo 3. 详细步骤请查看: 打包exe使用说明.md
echo.
pause
endlocal

